In a real-time analytics system, various front-end software applications provide customer transaction data directly to an analytical software application that is capable of executing analytical tasks. An example of such an analytical software application is a prediction application that provides useful, predictive output relating to a transaction with a customer. An analytical software application is capable of processing real-time data from a customer to execute analytical tasks and to generate output. In many instances, the analytical software application will use the real-time data in coordination with a data mining model to generate a predictive output. A data mining model is typically derived from historical data that has been collected, synthesized, and formatted. In many instances, a predictive output generated upon execution of an analytical task is fed into a business rule engine. The business rule engine will use the predictive output in conjunction with its rule set to determine if certain events should be triggered in a given front-end application. For example, the business rule engine may determine that a special promotional offer should be provided to a particular customer given the content of the predictive output and the nature of the transaction with that customer. In some instances, the front-end applications may directly process the predictive output.
During operation of the real-time analytics system, new data needs to be considered by the data mining model. For example, a data mining model that is used to predict the customer churn probability must take into account the latest behavior of customers. Therefore, new data must be used to “re-train,” or update, an existing data mining model. The updated model then can be used during the execution of subsequent analytical tasks. As multiple front-end software applications may want to use the same model, but with different timeliness of data used to train the models, the applications have to deal with a large set of different mining model “versions.” For example, a front-end software application may want to use a first version of a mining model that is trained with customer data from 2002, but may later want to use a second version of the mining model that is trained with customer data from 2003. Typically, however, front-end software applications maintain direct interfaces to the analytical software applications that utilize these models for predictions during task execution. In maintaining these interfaces, the front-end software applications often need to have detailed knowledge of the specific types of analytical software applications and data mining model versions that are used. For instance, a front-end application may need to provide specific input information that is specific to the model version used by the analytical software application when executing analytical tasks. In the example above, the front-end application may need to provide different types of input information depending on whether the first model version (trained with customer data from 2002) or the second model version (trained with customer data from 2003) is used.